package io.renren.entity;

import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.renren.param.SetContentParam;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 电子价签内容
 *
 * @author 1
 * @email 1@2.com
 * @date 2021-09-17 15:57:01
 */
@Data
@TableName("esl_content")
public class EslContentEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId
    private Long id;
    /**
     * 基站id
     */
    private String apId;
    /**
     * 价签id
     */
    private String eslId;
    /**
     * 会议申请记录id
     */
    private String applicationId;
    /**
     * 会议室id
     */
    private String roomId;

    //桌面铭牌参数
    /**
     * 公司名称
     */
    private String company;
    /**
     * 职称
     */
    private String title;
    /**
     * 姓名
     */
    private String name;


    //会议室门牌参数
    /**
     * 会议室名称
     */
    private String roomName;
    /**
     * 会议室使用状态
     */
    private String roomState;
    /**
     * 当前会议
     */
    private String nowMeeting;
    /**
     * 当前会议预定人
     */
    private String nowMeetingBooker;
    /**
     * 下一会议
     */
    private String nextMeeting;
    /**
     * 下一会议预定人
     */
    private String nextMeetingBooker;
    /**
     * 当前会议开始时间
     */
    private String nowMeetingStartTime;
    /**
     * 当前会议结束时间
     */
    private String nowMeetingEndTime;
    /**
     * 下一会议开始时间
     */
    private String nextMeetingStartTime;
    /**
     * 下一会议结束时间
     */
    private String nextMeetingEndTime;
    /**
     * 二维码图片链接
     */
    private String qrCodeUrl;
    /**
     * 当天日期星期
     */
    private String curDateWeek;
    /**
     * 公司logo图片链接
     */
    private String companyLogoUrl;

    //工位参数
    /**
     * 座位编号
     */
    private String seatCode;
    /**
     * 签名状态
     */
    private String signInStatus;
    /**
     * 预定状态
     */
    private String seatBookStatus;

    /**
     * 部门
     */
    private String department;
    /**
     * 工号
     */
    private String employeeCode;

    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除
     */
    private Boolean isDeleted;

    public static EslContentEntity convertFor(SetContentParam param) {
        EslContentEntity eslContentEntity = new EslContentEntity();
        BeanUtils.copyProperties(param, eslContentEntity);
        eslContentEntity.setCreateTime(new Date());
        eslContentEntity.setUpdateTime(new Date());
        return eslContentEntity;
    }

    public static List<EslContentEntity> convertFor(List<SetContentParam> params) {
        List<EslContentEntity> eslContentEntities = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(params)) {
            for (SetContentParam param : params) {
                eslContentEntities.add(convertFor(param));
            }
        }
        return eslContentEntities;
    }
}
